InfiniBand has been used recently in, for example, a communication between HPC (High Performance Computing)-based servers. In InfiniBand, a HCA (Host Channel Adaptor) is installed in the information processing apparatus and the communication is made between the QP (Queue Pair) within the HCA of a sending side and the QP within the HCA of a receiving side. Numbers of 1 to 49,151 that are unique in a network and called the LID (Local Identifier) are respectively assigned to the ports of the HCA. A single HCA may theoretically include 224-1 QPs and the QPs have QP numbers spanning from 0 to 224-1 that are unique within the HCA.
There is a communication scheme called the RC (Reliable Connection) provided by InfiniBand and a one-to-one communication is made between a pair of QPs in the RC. A pair of QPs notify and exchange LIDs and QP numbers of their own with each other to establish a connection between the QPs. A message of InfiniBand contains a LID that indicates a sender, and the message sent from a QP which belongs to an information processing apparatus having an LID different from that of the intended communication counterpart is discarded by the HCA of the receiving side.
FIG. 16 is a diagram illustrating a situation where a message sent from a communication counterpart other than the intended communication counterpart in the RC communication is discarded. In FIG. 16, the communication is made between a first QP having the LID of “1” and the QP number of “3000” and a second QP having the LID of “2” and the QP number of “4000”. In this case, when a third QP having the LID of “3” and the QP number of “5000” unilaterally transmits a message to the second QP having the LID of “2” and the QP number of “4000”, the HCA of the receiving side checks the LID within the message and does not receive the message because the message is transmitted from a communication counterpart other than the intended communication counterpart. Therefore, the second QP does not erroneously receive the message transmitted from a communication counterpart other than the intended communication counterpart.
However, a QP number that identifies the sender is not contained in the message of InfiniBand. Further, the other QP which belongs to the same information processing apparatus as that to which the intended communication counterpart belongs has the same LID as that of the intended communication counterpart. Accordingly, when the message is transmitted from the other QP which belongs to the information processing apparatus to which the intended communication counterpart belongs, the second QP of the receiving side is unable to discern the other QP from the intended communication counterpart and thus receives the message.
FIG. 17 is a diagram illustrating a situation where a message transmitted from a communication counterpart other than the intended communication counterpart in the RC communication is received. In comparison with FIG. 16, a third QP having the QP number of “5000” belongs to the same information processing apparatus in FIG. 17. Accordingly, since the LID of the third QP having the QP number of “5000” is identical to the LID of the first QP having the QP number of “3000”, the second QP of the receiving side receives the message transmitted from an QP other than the intended communication counterpart.
That is, in a case where a plurality of programs are included within the same information processing apparatus and respective programs perform the communication over InfiniBand, different QPs are respectively allocated to the programs. In the case, it is assumed that the RC communication of InfiniBand is made between two programs. However, the QP of the receiving side is not able to discern the program of the intended communication counterpart from the other program which is present in the same information processing apparatus as that in which the intended communication counterpart is present. Therefore, it is possible for a malicious program to counterfeit and send a message of InfiniBand.
Further, in a case of design where a QP is reused after disconnection of the RC communication, even though the program does not intend to maliciously send the message, the QP is likely to send the message to the communication counterpart without recognizing that the communication counterpart's QP has already established the connection with other QP than the QP. In this case, the QP of the receiving side is in danger of receiving the message from a communication counterpart which is not the intended communication counterpart at that time. Such a state where the outdated connection to be invalidated remains is called a Stale Connection.
Accordingly, in the RC communication, an QP of the sending side inserts an QP number thereof into a message and sends the message, and an QP of the receiving side checks the QP number. When the QP number does not correspond to the QP number of the intended communication counterpart, the receiving side may recognize that the message is incorrectly sent.
In the meantime, there is a technology in which the connection in the RC communication is managed by a higher-level middleware. However, when it is intended to use the higher-level middleware, the source program of InfiniBand is required to be modified, and the technology may not be applied to the existing program. Further, since all the InfiniBand programs are required to be operated under the management of middleware, operating some of the InfiniBand programs without being managed under the middleware is not permitted.
Further, there is a conventional technology in which an instance number is associated with a logical connection when the logical connection is established between a sending side and a receiving side, the sending side sends data by adding the instance number to the data, and the receiving side checks the instance number to determine whether the data belongs to the logical connection.
Related techniques are disclosed in, for example, Japanese National Publication of International Patent Application No. 2005-524264.